Introduction

 t Prograph Brings New Ideas Together
 t Manual Organization
 t How To Use This Manual
 t Presentation Conventions

Prograph is going to change the way you think about and write Macintosh software applications.*562*

When the Macintosh was first introduced, it quickly became known for being easy to use but difficult to program. Over the years, providers of software-development tools for the Macintosh have addressed this situation. Two schools of Macintosh programming have evolved.

*864*One group believes in total access to the lowest level of machine interface. Suppliers of such Macintosh programming products see their customers as folk-hero hackers, pioneers on the cybernetic frontier. According to this view, if you give hackers a powerful text editor and a mountain of detailed, accurate documentation, they are happy.
 
The other school of Macintosh development product suppliers caters to the programmer as “everyday Joe or Jane.” Their products isolate the developer from the sophisticated underpinnings of the Macintosh operating environment. Malleable “canned” objects are supplied as the building blocks of generic interfaces. The assumption is that, given the chance, people would rather write their own software than buy it.

To date, it’s been one perspective or the other. But, like Goldilocks’ porridge, *887*what is needed is a development environment that is “just right”—just the right mixture of machine-level power combined with the productivity of a high-level interface-building toolkit. This double-edged power has been foremost among Prograph International's design goals in developing Prograph as a*855* fifth-generation programming environment for your Macintosh.

t
Prograph Brings New Ideas Together

Prograph integrates four key trends emerging in computer science.

q Prograph is a*906* visual programming language.

q Prograph is*901* object-oriented.

q Prograph supports*897* dataflow specification of program execution.

q Prograph provides an object-oriented*877* application building toolkit.

While many advances in each of these research and development areas have been made, we know of no commercial software product which achieves the seamless integration of these programming features the way we have put them together in Prograph.

As you progress through the extensive tutorials in this manual, you will see that Prograph provides a programming environment that is both innovative and highly productive. When you have completed the Tutorial manual and scanned the Reference manual, and have a number of Prograph development hours behind you, we are certain that Prograph will become a standard by which you evaluate programming languages for years to come.

t
Manual Organization*925**940*

 *273*Prograph documentation is supplied in two volumes. This book, the Prograph Tutorial, contains two parts.*1115*

q Part 1, “Preliminaries,” shows you how to set up your Prograph programming environment, takes you on a grand tour of the Prograph environment, explores the conceptual foundations of Prograph, and surveys the Prograph language.

q Part 2, “Tutorials,” is a progressive, example-based presentation of the features of both the Prograph language and its development environment.

*271*Your second volume, the Prograph*917* Reference manual, consists of two parts.

q The reference chapters provide an organized source of information about the Prograph language, editor, interpreter, compiler, Application Builder, System classes, and the Macintosh Toolbox interface.

q The appendices provide information on adding code written in the C language to your Prograph application, as well as a thorough specification of the syntax and semantics of Prograph.

In addition, each volume contains an index.

t
How to Use This Manual*272**925**1114*

*507*If you are new to programming in general, or new to*772* object-oriented programming in particular, take the time to progress through the complete set of tutorials in the order in which they are presented. Doing this will build your conceptual understanding of the features of Prograph as well as incrementally build your skills with the diverse features of the graphical Prograph editor.

*907*Pay particular attention to the exercises that showcase the powerful interactive and visual aspects of the Prograph interpreter. In object-oriented terms, a Prograph application is made up of a collection of cooperating objects that interact with each other to deliver the end-user experience designed by a Prograph programmer. The highly visual features of the Prograph interpreter let you see just how the methods owned by these objects define the behaviors you observe in the application. Prograph gives you a kind of magic looking-glass to see what makes a program act as it does. 

As you develop a facility to think in object-oriented and dataflow terms, your 
increased use of the wide variety of interpreter features will accelerate your Prograph learning curve. Once you have completed the tutorials, you can then turn your trained eye on the diverse applications supplied on the Prograph Examples disk. The integrated interactive graphical editor and interpreter will prove invaluable in exploring these examples.

If you are an experienced programmer, you most likely have a set of personal habits for learning a new programming language and its associated development environment. In some ways, learning Prograph will be no different to you than learning other languages. In other ways, Prograph will be very different.
 
t
Presentation Conventions*217*

*270*Italic type is used to draw your attention to the first use of a new term and to highlight particular features provided in your Prograph learning experience. In addition, titles of books, such as Inside Macintosh, are italicized. 

Boldface type is used to refer to Prograph operations, methods, and classes, as well as class and instance attributes. Prograph is upper- and lower-case sensitive; add is distinguished from Add. A sentence that begins with a lower-case operation, attribute, or method name looks a bit strange in strict English grammatical terms, but it allows correct and efficient Prograph communication. add being the first word in this sentence makes this sentence an example of the upper- and lower-case convention.
 
Bold Helvetica type identifies text appearing in menus, menu items, dialogs, scrolling lists, buttons, and other interface controls that appear on your Macintosh screen. For example, you might be instructed to click Yes at the Save changes before closing? dialog or to select Open… from the File menu.

Plain Helvetica type identifies keyboard interaction. Keyboard input includes both character strings that you type and specific keys that you press. For example, you could be asked to type This Character String and press Return. In addition, keyboard equivalents are denoted in this type. For example, Command-S refers to the typical Macintosh convention for saving a file.

Mouse actions include click, drag and double-click. Modifier key strokes used to supplement basic mouse actions are noted as a hyphenated prefix to the mouse action. For example, holding the Option key while dragging the mouse is an Option-drag mouse action.

u A diamond-shaped bullet identifies an action you are to perform when progressing through a tutorial. For example:

u Select Open… from the File menu and click the file named System Classes in the scrolling-list view. Then click the Open button or press Return.

NOTES, TIPS, and CAUTIONS are set within hairline boxes. These entries contain annotations that help you understand Prograph and help you get the most productive use from its development environment.